package com.sprouting.personal.dao;

import cn.hutool.core.date.DateTime;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sprouting.personal.model.entity.TaskSignDetail;

import java.util.Date;
import java.util.List;

/**
 * 签到详情 dao
 *
 * @author ：sprouting
 * @date 创建时间： 2023-07-02 12:28:40
 */
public interface TaskSignDetailDao extends BaseMapper<TaskSignDetail> {

	/**
	 * 通过ID查询单条数据
	 * @param id 主键
	 * @return 签到组
	 */
	TaskSignDetail getTaskSignDetailById(String id);

	/**
	 * 分页查询
	 * @param page 分页参数
	 * @param taskSignDetail 查询参数
	 * @return 条件查询结果
	 */
	Page<TaskSignDetail> getTaskSignDetailPage(Page page, @Param("entity") TaskSignDetail taskSignDetail);

	/**
	 * 查询区间范围内的数据
	 * @param userId 当前登录用户
	 * @param beforeStart 开始时间
	 * @param afterEnd 结束时间
	 * @return
	 */
	List<TaskSignDetail> getMenstruationSectionTime(@Param("userId") String userId, @Param("taskSignId") String taskSignId, @Param("beforeStart") DateTime beforeStart, @Param("afterEnd") DateTime afterEnd);

	/**
	 * 根据时间和签到任务主表查询数据
	 * @param taskSignId 签到主表主键
	 * @param signTime 签到时间
	 * @return
	 */
	TaskSignDetail getBySignTime(@Param("taskSignId") String taskSignId, @Param("signTime") Date signTime);
}
